package IO;

import java.io.*;

public class IODemo5 {
    public static void main1(String[] args) {
        try(OutputStream outputStream = new FileOutputStream("d:/text.txt")) {
            outputStream.write(97);
            outputStream.write(98);
            outputStream.write(99);
            //此时也是一次写一个byte   read和write也可以一次读写多个字节
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args) throws IOException {
        //InputStream是一个抽象类，所以不能直接new对象，相当于IO操作不只是可以读写硬盘，也可以读写网卡
        //所以FileInputStream继承于InputStream，就说明此时是读系统文件
        /*InputStream inputStream = new FileInputStream("d:/text.txt");
        inputStream.close();//最后操作完文件内容一定要关闭资源，一定要记得！！很重要*/

        //此处就不用手动关闭资源了，InputStream实现了closed接口，这种写法会自动的调用关闭资源的方法
        try(InputStream inputStream =new FileInputStream("d:/text.txt")) {
            //读文件
            //read 一次返回的是一个字节
            //但是不是用byte来接收，看源码有解释，用一个-1来表示已经读完文件了
            //此处的返回值类型是int
            while (true) {
                int b = inputStream.read();
                if (b == -1) {
                    break;
                }
                System.out.println(b);
                //因为此时操作是字节流，所以输出的是对应的ASCII码值
            }

        }
    }
}
